package com.hspedu.newData.面试题;

import com.hspedu.newData.dmsxl.ds.ListNode;
import org.junit.Test;

import java.util.HashSet;

/**
 * @Author: yh
 * @description: 
 * @CreateTime: 2025-05-17 
 * @Version: 1.0
 */

public class 面试题0201移除重复节点 {

    // todo
    public ListNode removeDuplicateNodes(ListNode head) {

        ListNode dummy = new ListNode();

        ListNode pre = dummy;
        ListNode cur = head;

        HashSet<Integer> set = new HashSet<>();
        while (cur!=null){
            if (!set.contains(cur.val)){
                pre.next = new ListNode(cur.val);
                pre = pre.next;
            }
            set.add(cur.val);
            cur = cur.next;
        }
        return dummy.next;
    }

    @Test
    public void test() {
        // 测试代码

        ListNode t1 = new ListNode(1);
        ListNode t2 = new ListNode(2,t1);
        ListNode t3 = new ListNode(3,t2);
        ListNode t4 = new ListNode(3,t3);
        ListNode t5 = new ListNode(2,t4);
        ListNode t6 = new ListNode(1,t5);

        removeDuplicateNodes(t6);
    }

}
